Skip to content

Conversation

@nazreen
Copy link
Contributor

@nazreen nazreen commented Nov 28, 2025

Changes

  • update the Solana OApp program to use LzReceiveTypesV2
  • Add a debug.ts script for EVM (tasks/evm/debug.ts)
  • updated README.md to mention how to read strings for both Solana and EVM
  • update the Kinobi renderer to explicitly declare formatting (before this, every gen:api run would result in a diff, even if the program code hasn't changed)

Proof of Test

https://testnet.layerzeroscan.com/tx/0x916bcbae88f6bf590f6379ab1ea411e9be4b59813b0437d220c38cca7e588671
https://solscan.io/tx/2NT5MEk97ztZoGJ7UtZv3Byu2tiUuhcLA2oukDvWetHc82wX8QXkB1sa7YvRQSpVe1tsKvqS26JeKxYCfwL3zhcC?cluster=devnet

Notes

  • Compose is still not yet implemented

@github-actions
Copy link
Contributor

🚨 E2E Tests Failed

The E2E tests failed during CI. These tests validate real blockchain interactions and may fail due to:

This is non-blocking and does not prevent merging. Check the action logs above for detailed failure information.

@github-actions
Copy link
Contributor

🚨 E2E Tests Failed

The E2E tests failed during CI. These tests validate real blockchain interactions and may fail due to:

This is non-blocking and does not prevent merging. Check the action logs above for detailed failure information.

@nazreen nazreen marked this pull request as ready for review November 29, 2025 23:58
@github-actions
Copy link
Contributor

🚨 E2E Tests Failed

The E2E tests failed during CI. These tests validate real blockchain interactions and may fail due to:

This is non-blocking and does not prevent merging. Check the action logs above for detailed failure information.

@nazreen nazreen requested review from DanL0 and St0rmBr3w December 4, 2025 01:20
@nazreen
Copy link
Contributor Author

nazreen commented Dec 9, 2025

Needs internal review but should not be merged yet.

DanL0
DanL0 previously approved these changes Dec 9, 2025
Copy link
Contributor

@DanL0 DanL0 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good

please make sure to test on testnet as well to see if automatic delivery is working

one small thing, seems event authority is unused, please fix

@github-actions
Copy link
Contributor

github-actions bot commented Dec 9, 2025

🚨 E2E Tests Failed

The E2E tests failed during CI. These tests validate real blockchain interactions and may fail due to:

This is non-blocking and does not prevent merging. Check the action logs above for detailed failure information.

@cursor
Copy link

cursor bot commented Jan 8, 2026

PR Summary

Migrate Solana OApp to V2 execution planning

  • Replace legacy lz_receive_types with lz_receive_types_info (version probe) and lz_receive_types_v2 (returns execution plan) in the program and client
  • Expand Store/LzReceiveTypesAccounts (add alt, bump) and accept optional alt in init_store; derive lzReceiveTypesAccounts PDA in client pda.ts
  • Update lz_receive to include payer and wire Endpoint clear via remaining accounts

Generated SDK and types refresh

  • Regenerate client with new instructions (lzReceiveTypesInfo, lzReceiveTypesV2) and new types (AddressLocator, AccountMetaRef, Instruction, LzReceiveTypesV2Result); remove V1 types
  • Clear hardcoded program IDs; minor serializer/size/layout adjustments; add Kinobi renderer formatting to stabilize output

Tooling and docs

  • Add Hardhat task lz:oapp:evm:debug to read EVM contract data() and extend Solana oappCreate to accept --alt
  • README: add section on viewing stored strings for Solana and EVM
  • layerzero.config tweaks (comments, confirmations)

Written by Cursor Bugbot for commit 8b81ec1. This will update automatically on new commits. Configure here.

@github-actions
Copy link
Contributor

github-actions bot commented Jan 8, 2026

🧪 E2E Test Status

E2E tests are non-blocking and validate real blockchain interactions. Failures may occur due to network issues, RPC rate limits, or external service downtime.

Test Runs (Newest First):

  • Run #6547 - Passed - 2026-01-08 07:04 (UTC)

export type LzReceiveInstructionData = {
discriminator: Uint8Array
params: LzReceiveParams
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TypeScript client missing payer account for lzReceive instruction

High Severity

The Rust LzReceive struct was updated to include a new payer: Signer<'info> account at index 0, shifting store to index 1 and peer to index 2. However, the auto-generated TypeScript client for lzReceive was not updated accordingly — it still only has store at index 0 and peer at index 1, completely missing the payer account. While the Executor uses lz_receive_types_v2 to get the correct account list (which does include payer via AddressLocator::Payer), any direct usage of the TypeScript lzReceive function would fail because the account order doesn't match what the program expects.

Additional Locations (1)

Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants